package com.shop.shoppingmall.dao;

import com.shop.shoppingmall.entity.CountSum;
import com.shop.shoppingmall.entity.OrderEntity;
import com.shop.shoppingmall.entity.ShOrder;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 订单表(ShOrder)表数据库访问层
 *
 * @author makejava
 * @since 2020-10-12 15:33:33
 */
@Mapper
public interface ShOrderDao {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ShOrder queryById(String id);

    ShOrder queryOrderNumber(String orderNumber);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param
     * @param map 实例对象
     * @return 对象列表
     */
    List<ShOrder> queryAll(Map map);
    List<ShOrder> queryList(Map map);
    List<ShOrder> selectAll();

    /**
     * 新增数据
     *
     * @param shOrder 实例对象
     * @return 影响行数
     */
    int insert(ShOrder shOrder);

    /**
     * 修改数据
     *
     * @param shOrder 实例对象
     * @return 影响行数
     */
    int update(ShOrder shOrder);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(String id);

    List<OrderEntity> queryByspecId(List<OrderEntity> ids);

    int insertOrderList(List<OrderEntity> list);

    List<ShOrder> queryUserId(Map map);

    /**
     * 查询订单的不同状态
     * @param userId
     * @return
     */
    ShOrder selectOrderStatus(String userId);

    List<ShOrder> selectShOrder(String orderId);

    int deleteByUserIdAndSpecsId(String userId,String SpecsId);

    void updateOrderStatus(String orderNumber);

    void updateOrderAllStatus(String orderNum);

    void updateOrderAllsStatus(String orderAllNum);

    void updateCommentAndOrderStatus(String userId,String orderId);

    ShOrder queryCount(Map map);


}
